package com.samsung.service.lottery;
import java.util.List;
import java.util.Map;

import com.samsung.dto.lottery.CandidateDto;
import com.samsung.dto.lottery.EventFormDto;
import com.samsung.dto.lottery.ItemResultDto;
import com.samsung.model.lottery.LotteryEvent;
import com.samsung.model.lottery.LotteryItem;
import com.samsung.model.lottery.LotteryRecord;


/**
 * 
 * @ClassName: LotteryService 
 * @Description: TODO(实现抽奖业务接口) 
 * @author hd1.zhao
 * @date 2015年5月14日 下午2:43:08  
 * @since
 */ 
public interface LotteryService {
	
	
	/**
	 * 
	 * @Title: getLotteryEvent 
	 * @Description: TODO(查询抽奖事件) 
	 * @param @param lotteryEventId
	 * @param @return    设定文件
	 * @author qin1.li 
	 * @return LotteryEvent    返回类型 
	 * @throws
	 */
	public LotteryEvent getLotteryEvent(String lotteryEventId);
	/**
	 * 
	 * @Title: listByCandidate 
	 * @Description: TODO(查询候选人) 
	 * @param @param lotteryEventId
	 * @param @return    设定文件
	 * @author qin1.li 
	 * @return List<LotteryCandidate>    返回类型 
	 * @throws
	 */
	public List<CandidateDto> listByCandidate(String lotteryEventId);
	/**
	 * 
	 * @Title: listByItem 
	 * @Description: TODO(查询奖项) 
	 * @param @param lotteryEventId
	 * @param @return    设定文件
	 * @author qin1.li 
	 * @return List<LotteryItem>    返回类型 
	 * @throws
	 */
	public List<LotteryItem> listByItem( String lotteryEventId);
	/**
	 * 
	 * @Title: listNewLottery 
	 * @Description: TODO(创建一个抽奖列表) 
	 * @param @return    设定文件 
	 * @return List<LotteryEvent>    返回类型 
	 * @throws 
	 * @author rui1.liang
	 */
	public List<LotteryEvent> listNewLottery(int max);
	/**
	 * 
	 * @Title: getRecordCount 
	 * @Description: TODO(获取抽奖记录，用于路由时判断是否抽过奖) 
	 * @param @param lotteryId
	 * @param @return    设定文件 
	 * @return int    返回类型 
	 * @throws 
	 * @author rui1.liang
	 */
	int getRecordCount(String lotteryId);
	/**
	 * 
	 * @Title: saveLotteryRecord 
	 * @Description: TODO(保存抽奖记录) 
	 * @param @param lh
	 * @Title: saveLotteryRecord 
	 * @Description: TODO(保存抽奖记录) 
	 * @param @param lh
	 * @param @return    设定文件
	 * @author qin1.li 
	 * @return int    返回类型 
	 * @throws
	 */
	public int saveLotteryRecord( LotteryRecord record);
	/**
	 * 
	 * @Title: LotteryCandidate 
	 * @Description: TODO(新建一项抽奖)
	 * @param @param record
	 * @param @return    设定文件
	 * @author bing1.yuan 
	 * @return int    返回类型 
	 * @throws
	 */
	public int insertNewLottery(EventFormDto eventFormDto);
	/**
	 * 
	 * @Title: LotteryCandidate 
	 * @Description: TODO(校验抽奖的信息的合法性)
	 * @param @param record
	 * @param @return    设定文件
	 * @author bing1.yuan 
	 * @return int    返回类型 
	 * @throws
	 */
	public Map<String,Object> checkLotteryInfo(EventFormDto eventFormDto);
	/**
	 * 
	 * @Title: LotteryCandidate 
	 * @Description: TODO(校验抽奖的信息的合法性)
	 * @param @param record
	 * @param @return    设定文件
	 * @author bing1.yuan 
	 * @return int    返回类型 
	 * @throws
	 */
	public Map<String,Object> checkLotteryEvent(String title);
	
	/**
	 * 
	* @Title: listRecordByEvent
	* @Description: 根据活动编号查询获奖结果
	* @param @param lid
	* @param @return    设定文件
	* @return List<ItemResultDto>    返回类型
	* @throws
	 */
	public List<ItemResultDto> listRecordByEvent(String lid);
	/**
	 * @author singleId
	 * @date 2015年5月21日 上午9:34:27 
	 * @return 
	 */
	public List<LotteryEvent> getPageInfo(int startPos, int pageSize);
	
	/**
	 * 获取总条数
	 * @return
	 */
	public int getTotalCount(String uid);
	
	
	public int delete(String lid);
	
	/**
	 * 抽奖综合查询
	 * @param startPos
	 * @param pageSize
	 * @param uid
	 * @return
	 */
	List<Map<String, Object>> getLotteryList(Map<String, Object> paramMap);
	
	int getLotteryListCount(Map<String, Object> paramMap);
	
	/**
	 * 抽奖发起查询
	 * @param paramMap
	 * @return
	 */
	List<Map<String, Object>> getMyCreatLotteryList(Map<String, Object> paramMap);
	
	/**
	 * 抽我发起的抽奖总数
	 * @param paramMap
	 * @return
	 */
	int getMyCreateCount (Map<String, Object> paramMap);
	
}
	
		
	
